#include <stdio.h>
#include "unistd.h"
#include "stdlib.h"
#include "sys/types.h"
#include "sys/wait.h"

int main(int argc, char const *argv[])
{

    int pid = fork();

    if (pid == -1)
    {
        perror("进程fork失败");
    }
    else if (pid > 0)
    {
        // 等待子进程结束
        // 参数1:要等待的子进程id 参数2: 子进程的结束状态  参数3: 0表示阻塞式等待
        waitpid(pid, NULL, 0);
        printf("父进程结束\n");
    }
    else if (pid == 0)
    {
        // 在子进程中执行
        printf("子进程: 父pid = %d, 子pid=%d\n", getppid(), getpid());
        sleep(5);
        printf("子进程结束");
    }

    return 0;
}
